iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0

聯繫我

如果有任何問題或建議,歡迎隨時聯繫我:

前言

昨天結尾我留了一句話:有一大類「省錢技巧」其實是在做白工。

今天來兌現。

先問你一件事。你有沒有做過這種優化——把 prompt 裡的贅字刪一刪,「請你幫我仔細分析以下這段程式碼並且告訴我有什麼問題」改成「分析這段程式碼的問題」,覺得自己省下了不少 token?

我做過,做得很勤。然後有一天我真的坐下來算,發現那些努力大概省了帳單的 1%

不是我算錯,是我優化錯了地方。

Claude 的計價表上有兩個數字:input 和 output。而 output 的單價是 input 的 5 倍——四個模型全部都是,一個例外都沒有。當你死命壓縮 input 的時候,你在跟那個便宜 5 倍的東西過不去。

今天這篇不背價目表。價目表會過期,但計價的結構不會——理解結構之後,就算明年價格全部改一輪,你的判斷依據依然成立。

我們要回答三個問題:

  1. 為什麼 output 比 input 貴 5 倍?這個比例是隨便訂的嗎?
  2. 除了 input / output,你的帳單上其實還有第三種 token——你知道嗎?
  3. 知道結構之後,該優化什麼、不該優化什麼?

本篇的計價結構與倍率皆於 2026 年 8 月 8 日對照 Claude 官方 Pricing 文件 查證。絕對金額會變動,但本篇的重點是結構,不是數字。

目錄

天數 主題 描述
Day 1 Claude 模型怎麼選?2026 最新四階模型完整比較 Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5 的定位、規格與適用場景
Day 2 Claude 的計價邏輯:搞懂 input / output 為什麼差 5 倍 不背數字,理解計價結構,建立可長期沿用的成本直覺
Day 3 不知道用哪個模型?官方建議「從 Opus 5 開始」背後的思維 為什麼預設起手不是最便宜、也不是最強的那個
Day 4 Claude Haiku 4.5 適合做什麼?便宜模型的正確用法 便宜模型不是次等品,是專用工具
Day 5 Claude context window 是什麼?1M token 到底能塞多少東西 用實際檔案量換算,破除「塞越多越好」的迷思
Day 6 Claude 模型選擇決策表:一張圖判斷你該用哪一個 把前五天濃縮成一張可以貼在螢幕旁的決策流程
Day 7 Token 是什麼?為什麼你的 Claude 帳單比想像中貴 從 tokenizer 原理理解中文為什麼特別燒錢
Day 8 Claude 省 token 的 5 個實用技巧(一般使用者也適用) 不寫程式也能立刻套用的五個習慣
Day 9 Prompt Caching 是什麼?讓重複內容只算 10% 費用 快取寫入與命中的計價邏輯,以及什麼時候會虧
Day 10 Claude Batch API 教學:非即時任務直接省一半費用 用時間換金錢,非同步任務的正確打開方式
Day 11 新世代 tokenizer:同樣的中文為什麼變貴了 Claude 4.7 世代換了 tokenizer,這對中文使用者的實際影響
Day 12 對話越長越燒錢?Claude 長對話的成本陷阱與解法 每一輪都重算全部歷史——以及三種切斷成本累積的做法
Day 13 Claude 用量怎麼監控?成本失控前的預警機制 從 usage 欄位到 Console 儀表板,把帳單變成可觀測系統
Day 14 Claude effort 參數是什麼?五個檔位該怎麼設 low / medium / high / xhigh / max 的取捨與實測建議
Day 15 Adaptive Thinking 是什麼?為什麼你不用再寫「think step by step」 模型自己決定何時思考,舊 prompt 技巧為何失效
Day 16 Claude 回答變淺了?檢查這兩個隱藏設定 排查思路:先看 effort,再看 thinking 設定
Day 17 Claude Prompt 寫法教學:官方最佳實踐的骨架 一個可以套用在 90% 情境的 prompt 結構
Day 18 用 XML 標籤讓 Claude 輸出更穩定(結構化輸出教學) 為什麼 Claude 特別吃 XML,以及怎麼設計標籤
Day 19 System Prompt 怎麼寫?角色設定的正確姿勢 system 與 user 的分工,以及「你是一位專家」為什麼沒用
Day 20 Claude 幻覺怎麼防?降低錯誤輸出的實用做法 引用來源、允許說不知道、把驗證寫進流程
Day 21 Claude Code 是什麼?安裝與第一次使用完整教學 從安裝到跑完第一個任務,含常見卡關點
Day 22 Claude Code 省 token 設定:別讓它讀完整個專案 CLAUDE.md、忽略規則與 context 控制的實戰配置
Day 23 MCP 是什麼?把外部工具接進 Claude 的原理與實作 Model Context Protocol 的設計哲學與一個可跑的範例
Day 24 前端如何呼叫 Claude API?Messages 端點入門 第一支 API 請求,以及為什麼不該在瀏覽器直接呼叫
Day 25 Claude 串流輸出(Streaming):打造即時回應體驗 SSE 事件流解析與前端逐字渲染
Day 26 Claude API 錯誤處理與重試:正式環境該注意什麼 429 / 529 的正確退避策略與冪等性設計
Day 27 模型分流(Model Routing)是什麼?別再一支模型用到底 依任務難度動態選模型的判斷邏輯
Day 28 LLM 成本優化架構:小模型前置分流 + 大模型收尾 一套可落地的分層架構與失敗處理
Day 29 從「會用」到「用得對、用得省」:我 30 天的踩坑與心法 誠實記錄過程中判斷錯誤的地方
Day 30 Claude 使用總整理:模型、成本、設定一次看懂 全系列濃縮成一份可以收藏的速查表

一、那個 1:5,是四個模型的共同規律

先看一件很整齊的事:

模型 Input Output 比例
Claude Fable 5 10 50 1 : 5
Claude Opus 5 5 25 1 : 5
Claude Sonnet 5 2 10 1 : 5
Claude Haiku 4.5 1 5 1 : 5

(單位是每百萬 token 的美元,2026 年 8 月查證,比例仍是 1:5。)

四個模型、橫跨 10 倍的價格區間,output 對 input 的比例完全一致

這種整齊不會是巧合。定價通常反映成本結構,而 1:5 這個數字穩定到這種程度,代表它反映的是某種技術上的固有差異,不是行銷策略。

那個差異是什麼?

二、為什麼 output 比較貴?因為它不能一起算

我用一個比喻。

Input 像是「閱讀」,output 像是「寫作」。

你拿到一份 50 頁的文件要讀,你可以一目十行、快速掃過,甚至同時開好幾頁對照著看。閱讀是可以平行的。

但你要寫 50 頁的報告,你只能一個字一個字寫。而且每寫一個字,你都得先看過前面已經寫了什麼——第 3000 個字要寫什麼,取決於前面 2999 個字。寫作是嚴格序列的,沒辦法平行。

模型的處理方式,本質上就是這個差別:

  • 處理 input:整段 prompt 可以在一次運算中平行處理完,硬體(GPU)能吃滿。
  • 生成 output:必須逐個 token 產生(這叫自迴歸生成,autoregressive generation),每產生一個 token 就要跑一次完整的模型前向運算,而且下一個 token 得等這一個算完才能開始。

所以同樣一百萬個 token,「讀進去」和「寫出來」消耗的運算資源天差地遠。

這裡我要誠實標記一下: 上面這套「因為自迴歸生成無法平行化,所以 output 成本較高」的解釋,是業界對 LLM 推論成本結構的普遍理解,也是我自己的推論。Anthropic 官方文件只公布價格,並沒有說明定價背後的成本歸因。所以請把這段當成「一個能幫你建立直覺的合理模型」,而不是官方認證的事實。

但有一件事是官方明載、可以放心當依據的:1:5 這個比例在所有模型上一致。不論成因為何,這個比例是你可以拿來做決策的穩定基礎。

這個直覺一旦建立,你的優化順位就會自動排好:

同樣省下一千個 token,省在 output 上的價值,是省在 input 上的 5 倍

三、你的帳單上其實有第三種 token

大部分人以為只有 input 和 output 兩種。實際上還有第三類——而且它的單價比 input 便宜 10 倍

Prompt Caching(提示快取) 讓重複出現的內容以極低價計費:

Token 種類 相對於 input 基準價 說明
一般 input 標準輸入
快取寫入(5 分鐘) 1.25× 第一次存進快取,貴 25%
快取寫入(1 小時) 存久一點,貴一倍
快取命中(讀取) 0.1× 只要十分之一的價格
output 最貴的那個

看懂這張表,你就懂了整個成本優化的地形:

從 0.1× 到 5×,中間有 50 倍的落差。 你的每一個 token 落在哪一格,決定了你的帳單。

而快取的損益兩平點也很好算:5 分鐘版本寫入要 1.25×、讀取只要 0.1×,所以只要被讀到一次就開始回本;1 小時版本寫入 2×,要被讀到兩次才划算。

(Prompt Caching 的完整用法與陷阱,是 Day 9 的主題。)

還有第四種折扣——Batch API 對 input 和 output 一律打 5 折,而且可以跟快取疊加。條件是你得接受非即時處理。這是 Day 10。

四、兩個容易被漏算的東西

計價結構還有兩個地方,新手幾乎一定會漏:

① 你的工具定義(tools)是 input token。

你在請求裡帶的 tools 參數——工具名稱、描述、JSON schema——全部算 input。而且只要你帶了工具,API 還會自動加上一段系統提示來啟用工具功能,這段也算你的。以 Opus 5 為例,光是這段自動加的系統提示就要 286 個 token(tool_choice 設成 any 或指定工具時是 406 個)。

十個工具的 schema 加起來輕鬆破千 token,而且每一次請求都要重付一遍

② thinking tokens 算 output。

這個更關鍵。模型「思考」產生的內容,是以 output 價格計費的——也就是那個 5× 的價位。

而在 adaptive thinking 之下(Day 1 提過,新世代三個模型都是這種),模型自己決定要想多久。你沒有直接的開關,只有 effort 這個間接的油門。

所以會發生這種事:兩個看起來一模一樣的請求,一個花了 200 個 output token,另一個因為模型多想了一輪而花了 3000 個。你的成本變異,很大一部分藏在思考量裡,而不是在你寫的 prompt 裡。

(怎麼用 effort 控制這件事,是 Day 14。)

五、所以,哪些優化是白工?

回到開頭那個承諾。

❌ Before:優化了半天,帳單紋風不動

# 花了 20 分鐘把 prompt 從 120 字精簡到 80 字
prompt = "分析這段程式碼的問題"          # 省下約 40 個 input token

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,                      # 沒動
    messages=[{"role": "user", "content": f"{prompt}\n\n{code}"}],
)
# 輸出:一篇 2000 token 的詳盡分析(你只想看重點)

✅ After:改優化真正貴的那一端

prompt = "分析這段程式碼的問題,用條列式列出最嚴重的 3 個,每點一句話"

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=500,                       # 上限拉下來,避免失控
    messages=[{"role": "user", "content": f"{prompt}\n\n{code}"}],
    output_config={"effort": "medium"},   # 降低思考量(thinking 算 output)
)
# 輸出:一篇 200 token 的重點清單

對照一下這兩段。Before 省了 40 個 input token,換算成本幾乎看不到。After 省了 1800 個 output token,而 output 單價是 input 的 5 倍——兩者的效益差了兩百多倍。

而且 After 版本裡真正做事的是三個地方:要求輸出格式與長度(直接壓 output)、設定 max_tokens 上限(設一道防線)、調降 effort(壓思考量,那也是 output)。

一句話總結:省 input 是省小錢,省 output 才是省大錢。

當然,input 完全不用管嗎?也不是。有兩種情況 input 會變成主角:當你的 input 極大時(塞了整份文件、整個 repo),以及當同一段 input 被重複送很多次時(那就該用快取,讓它從 1× 掉到 0.1×)。這兩個場景分別是 Day 5 和 Day 9。

六、你的帳單其實是三個數字相乘

最後給你一個框架,它會貫穿接下來整個第二階段。

任何一筆 Claude 帳單,都可以拆成三個乘數:

總成本  =  單價   ×   每次用量   ×   呼叫次數
          (哪一格)    (多少 token)   (跑幾遍)

三個乘數,各有各的優化手段,而且它們是相乘的——這代表每一項的改善都會被另外兩項放大。

乘數 你能怎麼動它 對應天數
單價 換便宜的模型、用快取(1× → 0.1×)、用批次(打 5 折) Day 4、Day 9、Day 10
每次用量 壓 output 長度、降 effort、精簡 context、清掉舊對話 Day 5、Day 8、Day 12、Day 14
呼叫次數 做結果快取、合併請求、失敗時不盲目重試 Day 13、Day 26

為什麼要把它拆成三個?因為大部分人只優化其中一個,而且通常是最沒效益的那個。

回頭看開頭那個「刪 prompt 贅字」的例子:它動的是「每次用量」裡最小的那一塊(input 的措辭)。而同樣是動用量,改成壓 output 長度,效益就是 5 倍;改成降 effort 少想幾輪,效益可能是 10 倍。

更重要的是:三個乘數是相乘的。 假設你在單價上省一半(換模型)、用量上省一半(壓 output)、次數上省一半(加結果快取)——最後不是省 50%,是 省到剩下八分之一

這也是為什麼我把第二階段排了七天。它不是七個獨立技巧,是三個乘數的完整地圖。

一個具體的數字感

官方文件裡有個現成的例子可以借用:用 Haiku 4.5 處理一萬筆客服工單,平均每則對話約 3,700 token,總成本大約 37 美元

拿這個當基準往上推——同樣一萬筆,如果換成 Fable 5(10× 單價),大約是 370 美元。如果又沒有用快取共用那段分類規則,input 那一塊還會再往上翻。

同一批工作,同樣的結果,差距落在完全不同的量級。 而差別只在你有沒有看懂這三個乘數。

本篇自我挑戰

  • 今日挑戰:找出你最近寫的一支 Claude 呼叫,回答三個問題——① 你的 max_tokens 設多少?是經過思考的數字,還是隨手打的 4096?② 你的 prompt 有沒有指定輸出長度或格式?③ 如果沒有,模型平均回你多長?

    然後做一個實驗:在原本的 prompt 後面加一句「用不超過 5 個條列點回答,每點一句話」,比對前後的 usage.output_tokens。這是一分鐘就能做完、而且效果最直接的優化。

  • 反思:為什麼我們會反射性地去優化 input,而不是 output?我自己的答案是——input 是我寫的,output 不是。 我們天生比較願意管自己能直接控制的東西,而 output 感覺是「模型的事」。但事實上,output 一樣是你可以控制的,只是要透過指令而不是直接編輯。你有沒有其他「只優化自己看得到的部分」的習慣?

總結

今天我們沒有背價目表,而是把計價的結構拆開來看。

三件事值得帶走。第一,output 的單價是 input 的 5 倍,而且四個模型比例完全一致——這個比例穩定到可以當成長期的判斷依據。第二,你的帳單上其實有一整條光譜,從快取命中的 0.1× 到 output 的 5×,中間橫跨 50 倍,每個 token 落在哪一格才是重點。第三,thinking tokens 算 output,而在 adaptive thinking 下模型自己決定想多久——這是最容易失控、也最容易被忽略的一塊成本。

所以優化的順位很清楚:先管 output,再管重複的 input,最後才輪到精簡措辭。 那些花二十分鐘刪贅字的努力不是錯,只是排在最後一位。

本日關鍵字回顧

  • 1:5 計價比例:所有 Claude 模型的 output 單價皆為 input 的 5 倍,跨模型一致。
  • 自迴歸生成(Autoregressive generation):output 逐 token 序列產生、無法平行化,這是理解 output 為何較貴的直覺模型(業界普遍理解,非官方定價說明)。
  • Prompt Caching:快取命中僅收 0.1× input 價,5 分鐘版本被讀一次即回本。
  • Thinking tokens:模型思考所產生的 token,以 output 價計費,在 adaptive thinking 下由模型自行決定用量。
  • 工具定義成本tools 參數與其自動附加的系統提示皆計入 input,且每次請求重複計費。
  • 三個乘數:總成本 = 單價 × 每次用量 × 呼叫次數。三者相乘,各自的改善會被彼此放大。

明天我們回到選模型這件事。官方說「不確定就從 Opus 5 開始」——但 Opus 5 既不是最便宜的、也不是最強的,憑什麼是它?這個建議背後有一套關於錯誤成本的推理,而且它跟今天算的帳直接相關。

Day 3,我們拆解官方的預設建議。


上一篇
【Day 1】Claude 模型怎麼選?2026 最新四階模型 Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5 完整比較
下一篇
【Day 3】不知道用哪個模型?官方建議「從 Opus 5 開始」背後的思維
系列文
Claude 用得對,也用得省:工程師帶你搞懂選模型、Token 優化與底層邏輯4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言